// #ifndef VUE3
import Vue from 'vue'
import App from './App'

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
// 导入 网络请求的包
import {
  $http
} from '@escook/request-miniprogram'
// 客户端渲染
//import { createApp } from 'vue'
// 服务器端渲染
import {
  createSSRApp
} from 'vue'
import App from './App.vue'
import store from './store'


// 在 uni-app 项目中，可以把 $http 挂载到 uni 顶级对象之上，方便全局调用
uni.$http = $http

//定义请求域名
//$http.baseUrl = 'https://www.uinav.com'
$http.baseUrl = 'https://api-hmugo-web.itheima.net'

// 请求开始之前做一些事情
$http.beforeRequest = function(options) {
  uni.showLoading({
    title: '数据加载中...',
  })
}

//自定义弹框函数
uni.$showMsg = function(title = '数据请求失败', duration = 1500) {
  uni.showToast({
    title: title,
    duration: duration,
    icon: 'none',
  })
}

// 请求完成之后做一些事情
$http.afterRequest = function() {
  uni.hideLoading()
}

/*
客户端渲染（createApp()）：由于组件是在用户的浏览器中渲染的，因此初始加载可能需要一些时间，特别是当组件结构复杂或包含大量数据时。但是，一旦加载完成，应用就能实现高度的交互性和动态性。
服务器端渲染（createSSRApp()）：服务器会预先渲染组件，因此用户能更快地看到页面的初始内容。这对于首屏加载速度至关重要，特别是在移动设备或慢速网络上。但是，服务器负担可能会加重，且用户与页面的交互可能会受到一定限制，因为大部分动态内容需要依赖后续的客户端渲染。
*/

//客户端渲染
// const app = createApp(App);
// app.use(store);
// app.mount('#app');

//服务端渲染 
export function createApp() {
  const app = createSSRApp(App)
  app.use(store)
  return {
    app
  }
}
// #endif